package main

import "C"
import (
	"fmt"
)

/*
参考文档
https://www.jianshu.com/p/b19b9715c36b?utm_campaign=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com
*/

// 1. 要编译dll，这里必须要导入import C

// 2. 需要导出的方法必须增加export注解
//export Test
func Test(i int) {
	fmt.Printf("ss%d\r\n", i)
}

//export TestString
/*
   3.
因为使用go的string类型做参数的时候，会被C语言包装成结构体，在java调用的go的方法时，需要创建对应的结构体，
所以直接使用C的字符串作为参数，在go的内部对字符串进行转换
*/
func TestString(msg *C.char) *C.char {
	fmt.Printf("%s\r\n", C.GoString(msg))

	return C.CString("hello")
}

// 4. 必须要有一个空的主函数
func main() {
}

//执行以下命令编译
//go build -buildmode=c-shared -o hello.dll hello.go
